#ifndef ZG_STRING_H
#define ZG_STRING_H

#include "cstring"
#include "sstream"
#include "vector"
#include "set"
using std::string;
namespace zg_util{
    class String{
    public:
        template<typename T>
        static T StringToInt(const string& str) {
            T ret;
            std::stringstream ss;
            ss << str;
            ss >> ret;
            return ret;
        }
        template<typename T>
        static std::string IntToString(const T i){
            string ret;
            std::stringstream ss;
            ss<<i;
            ss>>ret;
            return ret;
        }
        /*替换字符串中所有子串*/
        static std::string ReplaceAll(const std::string &str,std::string oldstr,std::string new_str);
        /*根据分隔符将string中的数据放到vector里面，暂时只支持一个字符的分隔符*/
        static void SeperateStringToVector(const std::string& str,std::vector<std::string>& vec,const std::string &sign);
        /*根据分隔符将string中的数据放到set，暂时只支持一个字符的分隔符*/
        static void SeperateStringToSet(const std::string& str,std::set<std::string>& vset,const std::string &sign);
        static std::string DiscardSpace(const std::string& str);
    };
}

#endif
